import globals from "globals"
import pluginJs from "@eslint/js" // 校验js规范的（推荐）
import tseslint from "typescript-eslint" // 推荐的ts规范
import pluginVue from "eslint-plugin-vue" // 推荐的vue规范
import prettierRecommended from "eslint-plugin-prettier/recommended"

/** @type {import('eslint').Linter.Config[]} */
export default [
  { files: ["**/*.{js,mjs,cjs,ts,vue}"] },
  {
    languageOptions: {
      globals: { ...globals.browser, ...globals.node }
    }
  },
  pluginJs.configs.recommended,
  ...tseslint.configs.recommended,
  ...pluginVue.configs["flat/essential"],
  {
    files: ["**/*.vue"], // 校验vue中的ts代码
    languageOptions: { parserOptions: { parser: tseslint.parser } }
  },
  {
    ignores: [".css", "*.d.ts"] // 哪些文件不通过eslint来进行校验
  },
  {
    // 自定义规则, 根据需要增加自己的规则
    // eslint主要是校验代码的规范
    rules: {
      "no-console": "warn", // 将使用console的情况标记为警告
      // semi: ["error", "always"] // 强制分号结尾
      "vue/multi-word-component-names": "off" // 关闭vue组件命名规范
    }
  },
  prettierRecommended // 覆盖掉eslint的规范
]
